﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DTO.Projectos;

namespace SGPFWebApp
{
    public partial class DespachoDecisao : BasePage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            visualizadorControlo.ObterProjectoFunc = gestProjs.DevolveProjecto;
            visualizadorControlo.ObterProjectosNoEstadoFunc = gestProjs.DevolveProjectosDespachoDecisao;
            visualizadorControlo.ProjectDetailsControl = opcoes_detalhe_projecto;
        }

        protected void AceitarProjecto_Click(object sender, EventArgs e)
        {
            DateTime duracao = DateTime.Parse(validade.Value);
            bool incentivos = bool.Parse(isIncentivos.Value);
            if (incentivos)
                gestProjs.DespachoDecisaoIncentivos(visualizadorControlo.ProjectoID, despachoDecisao.Value, true, double.Parse(custoElegivel.Value), double.Parse(montanteFinanciamento.Value), duracao);
            else
                gestProjs.DespachoDecisaoBonificacoes(visualizadorControlo.ProjectoID, despachoDecisao.Value, true, double.Parse(taxaAprovada.Value), double.Parse(montanteMaximo.Value), duracao);

            feedback.Visible = true;
            feedback.InnerHtml = "Despacho emitido com sucesso!";
        }

        protected void RecusarProjecto_Click(object sender, EventArgs e)
        {
            DateTime duracao = default(DateTime);
            bool incentivos = bool.Parse(isIncentivos.Value);
            if (incentivos)
                gestProjs.DespachoDecisaoIncentivos(visualizadorControlo.ProjectoID, despachoDecisao.Value, false, 0, 0, duracao);
            else
                gestProjs.DespachoDecisaoBonificacoes(visualizadorControlo.ProjectoID, despachoDecisao.Value, false, 0, 0, duracao);

            feedback.Visible = true;
            feedback.InnerHtml = "Despacho emitido com sucesso!";
        }
        
        protected void TransformarBonificacao_Click(object sender, EventArgs e)
        {
            DateTime duracao = DateTime.Parse(validade.Value);
            gestProjs.DespachoDecisaoTransformaBonificacao(visualizadorControlo.ProjectoID, despachoDecisao.Value, double.Parse(taxaAprovada.Value), double.Parse(montanteMaximo.Value), duracao);

            feedback.Visible = true;
            feedback.InnerHtml = "Despacho emitido com sucesso!";
        }

        protected override void OnPreRender(EventArgs e)
        {
            base.OnPreRender(e);
            Projecto p = visualizadorControlo.Projecto;
            if(p == null) return;

            string show = string.Empty;
            if (p is Bonificacoes)
            {
                bonificacoes.Visible = false;
                TransformarBonificacaoLink.Visible = false;
                TransformarBonificacaoBt.Visible = false;
                isIncentivos.Value = "false";
                show = "block";
            }
            else
            {
                //Incentivos
                bonificacoes.Visible = true;
                TransformarBonificacaoLink.Visible = true;
                TransformarBonificacaoBt.Visible = true;
                isIncentivos.Value = "true";
                show = "none";
            }

            bonificacoes.Style.Add(HtmlTextWriterStyle.Display, show);
            TransformarBonificacaoBt.Style.Add(HtmlTextWriterStyle.Display, show);
        }
    }
}